# 字符串的常用操作
if __name__ == '__main__':
    # 字符串的切片
    s = 'abcdefg'
    print('s[1] = ', s[1])
    print('s[1:4] = ', s[1:4])

    # 字符串的遍历
    for c in s:
        print(c)

    # 字符串是不可变的(immutable),因此直接修改字符串中的字符会报错
    # s[0] = 'e'
    # print(s)

    # 如果想要修改字符串中的字符,则需要创建一个新字符串
    # 下面两种方式可以将字符串s中的字符'd'转换成大写
    s1 = s[0:3] + 'D' + s[4:]
    print(s1)
    s2 = s.replace('d', 'D')
    print(s2)
    print(s)  # 字符串s不会被修改,还是原始的内容

    # 拼接字符串时,采用+=的方式更方便,Python底层对这种方式进行了性能优化,在某些情况下,会原地扩充字符串buffer的大小,而不是分配新的内存空间
    s = ''
    for i in range(0, 10):
        s += str(i)
    print(s)

    # 通过string.join(iterable)函数进行字符串拼接
    # 如果字符串拼接的次数较少时,用+=更快;但是如果次数很大时,join稍快一些
    l = []
    for i in range(0, 10):
        l.append(str(i))
    joined = ''.join(l)
    print(joined)

    # 通过string.strip(str)函数,可以去除字符串首尾的str子串
    # 下面的操作实现了trim功能
    s = ' hello world    '
    trim = s.strip()
    print(trim)

    # 判断一个字符串是否包含另一端字符串
    text = 'hello world abc efg'
    query = 'abc'
    print(f'"{query}" is in "{text}"? {query in text}')
